result = FatOpen((ComponentInstance)params->params[0]);
break;
case kComponentCloseSelect:
result = FatClose(storage,(ComponentInstance)params->params[0]);
break;
case kComponentCanDoSelect:
result = FatCanDo(HiWord(params->params[0]));
break;
case kComponentVersionSelect:
result = FatVersion();
break;
// case kComponentRegisterSelect: // not supported
default:
result = paramErr;
break;
}
}
else
{ // Our request code
saveRes = CurResFile();
resRef = OpenComponentResFile(gSelfSave);
if (resRef < 0)
return EMSR_TRANS_FAILED;
UseResFile(resRef);
switch (params->what)
{
case kems_plugin_versionRtn:
result = ems_plugin_version(storage,(short*)params->params[0]);
break;
case kems_plugin_initRtn:
result = ems_plugin_init(storage,(short)params->params[2],(emsMailConfigP)params->params[1],(emsPluginInfoP)params->params[0]);
break;
case kems_plugin_finishRtn:
result = ems_plugin_finish(storage);
break;
#if EMS_HAS_TRANSLATOR_INFO
case kems_translator_infoRtn:
result = ems_translator_info(storage,(emsTranslatorP)params->params[0]);
break;
#endif
#if EMS_HAS_CAN_TRANSLATE
case kems_can_translateRtn:
result = ems_can_translate(storage,(emsTranslatorP)params->params[2],(emsDataFileP)params->params[1],(emsResultStatusP)params->params[0]);
break;
#endif
#if EMS_HAS_TRANSLATE_FILE
case kems_translate_fileRtn:
result = ems_translate_file(storage,(emsTranslatorP)params->params[4],(emsDataFileP)params->params[3],(emsProgress)params->params[2],(emsDataFileP)params->params[1],(emsResultStatusP)params->params[0]);
break;
#endif
#if EMS_HAS_PLUGIN_CONFIG
case kems_plugin_configRtn:
result = ems_plugin_config(storage,(emsMailConfigP)params->params[0]);
break;
#endif
#if EMS_HAS_QUEUED_PROPERTIES
case kems_queued_propertiesRtn:
result = ems_queued_properties(storage,(emsTranslatorP)params->params[1],(long*)params->params[0]);
break;
#endif
#if EMS_HAS_ATTACHER_INFO
case kems_attacher_infoRtn:
result = ems_attacher_info(storage,(emsMenuP)params->params[0]);
break;
#endif
#if EMS_HAS_ATTACHER_HOOK
case kems_attacher_hookRtn:
result = ems_attacher_hook(storage,(emsMenuP)params->params[3],(FSSpec *)params->params[2],(long *)params->params[1],(emsDataFileH)params->params[0]);
break;
#endif
#if EMS_HAS_SPECIAL_INFO
case kems_special_infoRtn:
result = ems_special_info(storage,(emsMenuP)params->params[0]);
break;
#endif
#if EMS_HAS_SPECIAL_HOOK
case kems_special_hookRtn:
result = ems_special_hook(storage,(emsMenuP)params->params[0]);
break;
#endif
#if EMS_HAS_IDLE
case kems_idleRtn:
result = ems_idle(storage,(emsIdleDataP)params->params[0]);
break;
#endif
#if EMS_HAS_MBOX_CONTEXT_INFO
case kems_mbox_context_infoRtn:
result = ems_mbox_context_info(storage,(emsMenuP)params->params[0]);
break;
#endif
#if EMS_HAS_MBOX_CONTEXT_HOOK
case kems_context_hookRtn:
result = ems_context_hook(storage,(emsMenuP)params->params[0]);
break;
#endif
#if EMS_HAS_PLUGWINDOW
case kems_plugwindow_closeRtn:
result = ems_plugwindow_close(storage,(emsPlugwindowDataP)params->params[0]);
break;
case kems_plugwindow_reopenRtn:
result = ems_plugwindow_reopen(storage,(emsPlugwindowDataP)params->params[0]);
break;
case kems_plugwindow_eventRtn:
result = ems_plugwindow_event(storage,(emsPlugwindowDataP)params->params[1],(emsPlugwindowEventP)params->params[0]);
break;
case kems_plugwindow_menu_enableRtn:
result = ems_plugwindow_menu_enable(storage,(emsPlugwindowDataP)params->params[1],(emsPlugwindowEventP)params->params[0]);
break;
case kems_plugwindow_menuRtn:
result = ems_plugwindow_menu(storage,(emsPlugwindowDataP)params->params[1],(emsPlugwindowEventP)params->params[0]);
break;
case kems_plugwindow_dragRtn:
result = ems_plugwindow_drag(storage,(emsPlugwindowDataP)params->params[1],(emsPlugwindowDragDataP)params->params[0]);
break;
#endif
#if EMS_HAS_IMPORTER_INFO
case kems_importer_infoRtn:
result = ems_importer_info(storage,(emsImporterP)params->params[0]);
break;
#endif
#if EMS_HAS_IMPORTER_HOOK
case kems_importer_hookRtn:
result = ems_importer_hook(storage,(emsImporterDataP)params->params[0]);